package com.zmn.oms.common.dro.quotation3;

import com.zmn.common.constant.GlobalConsts;
import com.zmn.oms.common.dro.normal.pay.AmountDRO;
import com.zmn.oms.common.dro.serviceitem.OrderServiceItemDRO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * @author sunlife
 * @date:2021/11/25 5:42 下午
 * description:
 */
@Data
@ApiModel("检修报告")
public class CheckReportDRO implements Serializable {

    private static final long serialVersionUID = -1595377642936834599L;

    @ApiModelProperty("订单ID")
    private Long orderId;

    @ApiModelProperty("工单ID")
    private Long workId;

    @ApiModelProperty("产品ID")
    private Integer productId;

    @ApiModelProperty("产品名称")
    private String productName;

    @ApiModelProperty("产品数量")
    private Integer number;

    @ApiModelProperty("品牌ID")
    private Integer brandId;

    @ApiModelProperty("品牌名称")
    private String brandName;

    @ApiModelProperty("故障等级")
    private Integer faultLevel;

    @ApiModelProperty("故障等级")
    private String faultLevelName;

    @ApiModelProperty("故障图片")
    private String faultImage;

    @ApiModelProperty("前台产品ID")
    private Integer showProductId;

    @ApiModelProperty("前台产品名称")
    private String showProductName;

    @ApiModelProperty("前台产品图片地址")
    private String productPictureSrc;

    @ApiModelProperty("检测方式")
    private Integer checkType;

    @ApiModelProperty("故障码ID")
    private Integer faultCodeId;

    @ApiModelProperty("故障码")
    private String faultCode;

    @ApiModelProperty("检测项目数量")
    private Integer maintainItemCount;

    @ApiModelProperty("异常检测项目数量")
    private Integer abnormalMaintainItemCount;

    @ApiModelProperty("检修时长")
    private Integer deteTime;

    @ApiModelProperty("检修时长-秒")
    private Integer deteTimeSeconds;

    @ApiModelProperty("故障现象")
    private List<FaultPhenoDRO> faultPhenList;

    @ApiModelProperty("故障图片")
    private List<FaultImageDRO> faultImageList;

    @ApiModelProperty("故障部位/详解")
    private List<FaultDRO> faultList;

    @ApiModelProperty("检测项目")
    private List<OrderMaintainItemDRO> maintainItemList;

    @ApiModelProperty(value = "检测项目ID", notes = "提交顺序")
    private List<Integer> maintainItemIdList;

    @ApiModelProperty("服务内容")
    private List<ServiceContentDRO> serviceContentList;

    @ApiModelProperty("订单费用")
    private OrderAmountDRO orderAmount;

    /**
     * 是否确认了故障
     * 1未确认 2已确认
     */
    @ApiModelProperty("是否确认了故障")
    private Integer isConfirmFault = GlobalConsts.NO;


    /**
     * 是否确认了检测报告
     * 1未确认 2已确认
     */
    @ApiModelProperty("是否确认了检测报告")
    private Integer isConfirmReport = GlobalConsts.NO;


    /**
     * 是否修改过检测报告
     * 1未修改过 2已修改过
     */
    @ApiModelProperty("是否修改过检测报告")
    private Integer editStatus = GlobalConsts.NO;

    /**
     * 是否同意维修
     * 0 待用户选择 1 不同意 2 统一
     */
    @ApiModelProperty("是否同意维修")
    private Integer isAgree = GlobalConsts.NONE;

    @ApiModelProperty("工单保修内容")
    private OrderWarrantyDRO orderWarrantyDRO;

    /**
     * 定金进度款集合
     */
    @ApiModelProperty("定金进度款集合")
    private List<AmountDRO> amountList;

    /**
     * 订单附加项
     */
    @ApiModelProperty("工程师选择的服务项目")
    private List<Integer> quotationOrderServiceItemIdList;

    /**
     * 订单附加项
     */
    @ApiModelProperty("订单附加项")
    private List<OrderServiceItemDRO> orderServiceItemList;

    /**
     * 待支付金额
     */
    @ApiModelProperty("待支付金额")
    private Integer waitPayAmount;

    /**
     * 是否有检测报告
     */
    @ApiModelProperty(value = "是否有检测报告", notes = "1 没有 2 有")
    private Integer checkReportStatus;

    /**
     * 上门用户（前置用户Id）
     */
    @ApiModelProperty(value = "上门用户（前置用户Id）")
    private Long visitUserId;

    /**
     * 支付优惠的金额
     */
    @ApiModelProperty(value = "支付优惠的金额")
    private Integer payDiscountAmount;

    @ApiModelProperty("工程师修改前前台产品ID")
    private Integer oldShowProductId;

    @ApiModelProperty("工程师修改前前台产品名称")
    private String oldShowProductName;

    @ApiModelProperty("工程师修改前品牌ID")
    private Integer oldBrandId;

    @ApiModelProperty("工程师修改前品牌名称")
    private String oldBrandName;

    @ApiModelProperty("二级分类")
    private Integer categId;

    @ApiModelProperty("二级分类名称")
    private String categName;

    @ApiModelProperty("工程师修改前二级分类")
    private Integer oldCategId;

    @ApiModelProperty("工程师修改前二级分类名称")
    private String oldCategName;

    /**
     * 计价器名称
     */
    @ApiModelProperty("计价器名称")
    private String tariffName;

    /**
     * 工程师修改前计价器名称
     */
    @ApiModelProperty("工程师修改前计价器名称")
    private String oldTariffName;

    /**
     * 故障现象id
     */
    private Integer phenId;

    /**
     * 故障现象名称
     */
    private String phenName;

    /**
     * 工程师未修改之前故障现象id
     */
    private Integer oldPhenId;

    /**
     * 工程师未修改之前故障现象名称
     */
    private String oldPhenName;

    @ApiModelProperty("故障现象变更提示")
    private String phenChargePromptStr;
}
